First of all, FAME Ain't an Mpeg Encoder... yet. It currently only encodes video and does no temporal compression, i.e. it is rather a video MJPEG encoder for the moment. The goal of this software is to provide an MPEG encoder fast enough to run on personnal computers in real-time, to be used for example as a VCR (see requirements).
It currently features:
This allows FAME to be very flexible on video sources, and automatically load the most appropriate module for a given source. Basically this means that FAME can handle any video source, as soon as a module exists for it, and that the modules developpement can be done apart from FAME developpement as they are loaded dynamically (there is no need to recompile FAME when adding a module).
There are currently only two modules which are capture modules for the Video4Linux compliant devices (v4l) and for the ATI All-in-Wonder cards (gatos).
This architecture will allow an easy developpement of future modules for using other video file formats as input such as AVI or even MPEG.
Using the MMX capabilities of processors allows fast computing of DCT, which is the most time consuming operation in MPEG encoding.
This makes it possible to send video data to a remote client or even broadcast it to many clients. This video stream could then be played by the client with an MPEG decoder. I've been successfully using FAME this way with the MPEG decoder 'nist' (http://linuxvideo.org), see README for details.